#pragma once

#include <iostream>

class DrawAPI
{
public:
    virtual ~DrawAPI() = default;

public:
    virtual void draw(int radius, int x, int y) = 0;
};

class RedPen : public DrawAPI
{
public:
    void draw(int radius, int x, int y)
    {
        std::cout << "draw red, radius: " << radius << ", x: " << x << ", y: " << y << std::endl;
    }
};

class YellowPen : public DrawAPI
{
public:
    void draw(int radius, int x, int y)
    {
        std::cout << "draw yellow, radius: " << radius << ", x: " << x << ", y: " << y << std::endl;
    }
};

class GreenPen : public DrawAPI
{
public:
    void draw(int radius, int x, int y)
    {
        std::cout << "draw green, radius: " << radius << ", x: " << x << ", y: " << y << std::endl;
    }
};
